문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 RAM/주소할당 문제 (문단 편집) === 4 GiB 문제 === * 해당 운영 체제: 32비트 운영 체제. 설명은 주로 Windows 위주로 되어 있으나 다른 운영 체제에서도 대동소이한 문제가 있다. [[인텔]]은 [[32비트]] CPU인 [[80386]]에서는 메모리 주소선으로 [[32비트]]를 이용했고 이후의 32비트 인텔 CPU는 이 구조를 그대로 답습했다. 메모리는 바이트 단위로 주소를 매기므로 4 GiB(2^^32^^ 바이트 = 4 × 2^^30^^ 바이트)까지 주소를 부여할 수 있다는 말이 된다. 이는 전작인 [[80286]]의 16 MiB와 비교하면 '''256배''' 증가한 것이다. 80386이 등장한 1986년 당시에는 80286의 16 MiB 공간도 대단히 크게 여겨지던 판이라 4 GiB는 거의 무한에 가까운 공간[* 64비트는 2^^64^^ 바이트 = 16 × 2^^60^^ 바이트 = 16 EiB이다. 하드디스크도 커 봐야 수십 TiB인 현상황에서는 거의 무한한 수 같지만, 언젠간 저 용량도 부족할 것이다.]으로 인식되었고, 실제로도 아무런 문제 없이 상당히 긴 시간 동안 80386에서 성립된 메모리 구조가 그대로 이용되었다. 그러나 21세기에 접어들어 4 GiB 주소도 부족해지는 날이 다가오고 말았다. 32비트 CPU와 [[운영체제]]는 기존과 호환성을 유지해야 하므로 근본적인 구조를 바꿀 수 없었고 이로 인해 32비트 체제가 쓰이는 동안 4 GiB 제한은 계속되었다. [[16비트]] 시대와 마찬가지로 주소의 일부는 하드웨어 영역으로 할당되어 있고, 나머지에서 다시 커널 공간이 빠지기 때문에 사용자가 실제로 쓸 수 있는 양은 더 작다. 하드웨어 영역으로 할당된 메모리 주소 중 일부는 다른 장치와 통신하기 위해서 예약된 메모리 영역이며, 이를 [[https://ko.wikipedia.org/wiki/%EB%A9%94%EB%AA%A8%EB%A6%AC_%EB%A7%B5_%EC%9E%85%EC%B6%9C%EB%A0%A5|Memory-mapped I/O (MMIO)]]라고 한다.[* 장치의 메모리가 1:1로 MMIO에 매칭될 수도 있지만 아닐 수도 있다. 그래서 장치 메모리가 크다고 항상 주소크기가 커지진 않는다.] 여기에 더해 운영 체제의 종류에 따라 시스템 영역에 할당되는 용량도 개개 컴퓨터마다 다르다. 따라서 딱 얼마만큼 쓸 수 있다고 잘라 말할 수는 없지만 실제로는 대략 2~3.75 GiB 정도 쓸 수 있다고 보면 된다. 이러한 근본적인 제약은 모바일 장치도 마찬가지라서, 많은 안드로이드 제조사들이 2 GiB 메모리 다음 PC처럼 4 GiB로 가지 않고 3 GiB로 간 이유 중 하나도 ARM 프로세서가 32비트에 머물러 있어 4 GiB를 달아봤자 전부 쓸 수 없었던 것이었다. 이 문제를 해결하기 위해서 32비트 CPU가 상용화된 후 펜티엄 프로에서 PAE(Physical Address Extension/물리 주소 확장)이라는 개념이 도입돼서 최대 36비트 메모리 주소를 사용하여 64 GiB까지 사용할 수 있었다. 하지만 32비트 구조의 근본적인 문제는 이것으로 해결하지 못했기 때문에 [[64비트]] 아키텍처가 등장한 뒤에야 근본적인 문제가 해결되었다. 2010년부터는 대부분의 운영 체제와 CPU가 64비트를 이용하면서 이 문제에서 벗어났다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기